iOSアプリ開発者による2024年のふりかえり
2024年が終わりを迎え、振り返ると多くの出来事があった。現職に転職して1年が経ち、新しい環境にも徐々に適応することができた。iOSアプリ開発者目線で、今年の主な出来事や気づきを振り返った。
iOS/Androidアプリ開発
仕事では、iOS/Androidのネイティブアプリの保守と新機能開発を担当した。ここでは、特に印象に残ったトピックをいくつか紹介する。
iOSアプリ開発
2024年9月にXcode 16がリリースされ、Swift 6が利用可能になった。Swift 6ではデータ競合検出機能が強化され、Embedded Swiftとして組み込み機器向けプログラミングにも対応した。
今年の大きなトピックとして、「プライバシーマニフェスト対応」「Xcode 16」「Swift 6」が挙げられる。
プライバシーマニフェスト対応
2024年初頭から、プライバシーマニフェスト対応に取り組んだ。Appleからの情報が少ない中、Apple Developer Forumsを参考にしながら対応を進めた。非対応のアプリは審査でリジェクトされる可能性があったため、サードパーティSDKの更新状況を定期的に追跡し、必要に応じてPull Requestを送るなど積極的に対応した。
しかし、3月16日に施行された厳格化には反発の声も多く、結果的に非対応アプリでも審査を通過するケースが見られ、やや拍子抜けした印象を受けた。
Alamofire v5へのメジャーアップデート
プライバシーマニフェスト対応の一環で、通信ライブラリ「Alamofire」をv4系からv5系にアップデートした。着手時点で、v5のリリースから約4年が経過していたため、既存コードのマイグレーションに苦労したが、無事に完了した。
ワーニングの削減
ビルドログに大量のワーニングが出力されていたため、Rubyスクリプトを活用して効率的に対応した。すべて解消できたわけではないが、多くのワーニングを削減できた。
また、チームメンバーが「Xcode Cloud」を導入したことで、Pull Request上でワーニングを確認できるようになり、事前にワーニングの低減対応をしておいてよかったと感じた。
Xcode 16.0 へのアップデート
Xcode 15.4へのアップデートを断念した後、Xcode 16.0への移行を早い段階で実施した。しかし、UICollectionViewやUINavigationControllerの仕様変更、iOS 18シミュレータの不具合など、多くの問題があった。
特に、EXCLUDED_ARCHS設定に関連する問題は未解決のままで、Appleによる修正は期待できないため、サードパーティSDKのアップデートを待つ必要があった。現時点で把握している不具合は以下の通りである。
- Xcode 16.0とiOS 18.0シミュレータの組み合わせでSafariViewControllerがフリーズしてしまう不具合を解消する
- EXCLUDED_ARCHSの設定があると、iOS 18シミュレータでSFSafariViewControllerやUIImagePickerControllerがフリーズしてしまう問題についてまとめた。
- iOS 18.0以降のiOSシミュレータで地図を表示すると真っ赤になってしまう問題
- iOS 18.0以降のシミュレータでMapKitを使用した地図が正しく表示されず、真っ赤になる問題についてまとめた。
意外と高評価だったのは、iOS 18のダークモードでアプリアイコンが反転する条件を調査した記事だった。
古いライブラリの削除
アプリのシンプル化と保守性の向上を重視し、Swift標準機能に置き換え可能な古いライブラリを段階的に削除している。
メモリリークの解消
アプリの品質向上のため、メモリリークの解消にも取り組んでいる。リーク箇所を一つずつ特定し、修正を進めている。
Androidアプリ開発
現職ではiOSエンジニアとして採用されたが、Androidアプリの開発にも関わっている。Jetpack Composeを使ったUI実装やワーニングの削減に取り組んだ。
DevelopersIOで書いたブログ記事
2024年ではDevelopersIOで39本の記事を執筆した。以下は、特に反響の大きかった記事をカテゴリ別にピックアップする。
プライバシーマニフェスト関連
- サードパーティSDKのPrivacy Manifests対応状況を調査した
- プライバシーマニフェスト対応のために、主要なサードパーティSDKの対応状況を調査した結果をまとめた記事。
- 3月13日から始まったプライバシーマニフェスト未対応の警告メールを受け取った
- プライバシーマニフェスト施行後に未対応だった場合にどんな警告メールが送られてくるか調査した記事。
Xcode/Swift関連
- iOS 18のダークモードでアプリアイコンの色が反転する条件を検証してみた
- ダークモード時にアプリアイコンの色が反転する条件について調査した記事。
- Xcode 15.3 を使って今のうちに Swift 6 へのアップデートに備える
- Strict Concurrencyを有効にして、Swift 5を使いながらSwift 6非対応のコードを調べる方法をまとめた記事。
- Xcode 16.0とiOS 18.0シミュレータの組み合わせでSafariViewControllerがフリーズしてしまう不具合を解消する
- EXCLUDED_ARCHSの設定があると、iOS 18シミュレータでSFSafariViewControllerやUIImagePickerControllerがフリーズしてしまう問題についてまとめた記事。
これ以外にも、ネイティブアプリの開発記事を多数投稿しているので是非こちらからご覧ください。
仕事以外
仕事以外でも充実した一年だった。特に、iOSDCに初参戦したことは大きな経験だった。多くのiOSエンジニアと交流し、有意義な時間を過ごせた。
また、個人開発アプリ「NSEasyConnect」がSNSで話題となり、約9,500ダウンロードを達成した。特に、Twitterで多くのユーザーから「使いやすい」「便利」といったポジティブなフィードバックをいただけたことは、開発者として非常に嬉しい経験だった。さらに、App Storeのレビューでも高評価をいただき、ユーザーのニーズに応えられたことを実感した。
まとめ
2024年を振り返ると、多くの学びがあった。2025年に向けては、Swift 6の完全導入を目指しながら、既存アプリの品質向上を図りたいと考えている。また、個人開発ではユーザーに新たな価値を提供したいと考えている。さらに、iOSDCで得たつながりを活かし、技術的な知見を深める1年にしたい。